import { service } from "./request";
/**
 * 系统设置模块相关
 */
// 系统设置列表请求返回的数据中的 用户当前配置
export type settingsListDateType = {
  id: number;
  insureRemind: number;
  annuallyRemind: number;
  maintenanceRemind: number;
}[];
// 系统设置列表请求返回的数据中的 用户可选的配置 的数组 的一个元素
export type settingType = {
  value: string;
  label: string;
  id: number;
  name: string;
};
// 系统设置列表请求返回的数据中的 用户可选的配置 的数组
export type settingsType = settingType[];
// 系统设置列表请求返回的数据
export interface settingsListType {
  data: settingsListDateType;
  insureRemind: settingsType;
  annuallyRemind: settingsType;
  maintenanceRemind: settingsType;
  msg: number;
}
// 获取系统设置列表
export async function settingsList(id = 0) {
  const data = await service.get<settingsListType>("zq/settingsList?id=" + id);
  return data;
}
// 修改系统设置的提醒
export async function updSettings(id: number, type: string, value: number) {
  const data = await service.post("zq/updSettings", { id, type, value });
  return data;
}
/**
 * order订单模块相关
 */
// 后端返回的数据类型
export interface DataType {
  key: number;
  createTime: {
    date: string; // 创建时间
    orderId: string; // 订单号
  };
  uid: {
    name: string; // 用户姓名
    phone: number; // 用户手机号
  };
  collection_return_time: {
    collectionTime: string; // 取车时间
    returnTime: string; // 还车时间
  };
  collection_return_address: {
    collectionAddress: string; // 取车地址
    returnAddress: string; // 还车地址
  };
  leaseTime: string; // 租期
  mid: {
    
    id: number; // 车型id
    name: string; // 车型名称
  };
  rent: number; // 租金
  deposit: number; // 押金
  state: {
    id: number; // 状态id
    name: string; // 状态细节
    state: boolean; // 状态 1进行中 0已取消或逾期
  }; // 订单状态
}
// from表单 字段更新后的数据类型
export interface FieldData {
  name: string[];
  value?: unknown;
  touched?: boolean;
  validating?: boolean;
  errors?: string[];
}
// 车型信息 单个对象
export interface MidObj {
  TransmissionType: string;
  boxtype: string;
  brand: string;
  cid: number;
  cximage: string;
  displacement: string;
  seats: string;
  style: string;
  year: string;
}
// 获取车型
export async function getMidList() {
  const data = await service.get("zq/vehicleList");
  return data;
}
// 获取车辆状态
export async function getStateList() {
  const data = await service.get("zq/orderStateList");
  return data;
}
// 获取订单来源
export async function getSourceList() {
  const data = await service.get("zq/orderSourceList");
  return data;
}
// 获取用户信息
export async function getUserList() {
  const data = await service.get("zq/userList");
  return data;
}
// 获取门店信息
export async function getStoreList() {
  const data = await service.get("zq/storeList");
  return data;
}
// 订单查询 多条件
export interface OrderSchema {
  createTime?: string;
  id?: string;
  phone?: string;
  source?: number | string;
  state?: number | string;
  type?: number | string;
  vCode?: string;
}
type keys =
  | "createTime"
  | "id"
  | "phone"
  | "source"
  | "state"
  | "type"
  | "vCode";
// 获取订单列表
export async function getOrderList(schema: OrderSchema) {
  let url = "zq/orderList";
  if (schema) {
    url = `${url}?${Object.keys(schema)
      .map((key) => "key=" + schema[key as keys])
      .join("&")};`;
  }
  const data = await service.get(url);
  return data;
}
// 修改订单状态和修改订单
export async function updateOrder(id:number, search: {state?:number,}) { 
  const data = await service.post(`zq/orderUpdate`, { id, search });
  return data
}
